
import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * La boutique qui permet d'acheter des escargots (parmit 2 especes).
 *
 */

public class BoutiqueAchatEscargot extends Boutique {
	
	private BarreDeJeu barreDeJeu;
	
	//Les deux boutons pour permettre un choix entres les especes d'escargots
	private JButton escargotChoix1 = new JButton(new ImageIcon("img/escargot1_BoutiqueAchat.png"));
	private JButton escargotChoix2 = new JButton(new ImageIcon("img/escargot2_BoutiqueAchat.png"));
	
	private JLabel imageBoutiqueAchatEscargot = new JLabel(new ImageIcon("img/AchatEscargot.png"));
	private JPanel confirmationAchatEscargot;
	
	private int especeEscargot;
	private int nombreEscargot=1;
	private int prixAchatEscargot=20;
	
	/**
	 * Constructeur de la classe BoutiqueAchatEscargot
	 * 
	 * @param _barreDeJeu
	 * @param _tirelire
	 */
	public BoutiqueAchatEscargot(BarreDeJeu _barreDeJeu, Tirelire _tirelire) {
		super(_tirelire);
		this.tirelire=_tirelire;
		this.barreDeJeu=_barreDeJeu;
	}
	
		
	/**
	 * Permet d'acheter des escargots.
	 */
    public void achatEscargot() {
    	if(verifierEtatTirelire(this.getPrixAchatEscargot())){//On regarder si on peut a assez d'argent dans la tirelire
    		 setNombreEscargot(getNombreEscargot()+1);
    		 creerEscargot();
    		 setEspeceEscargot(0);
    		 //Lorsque l'escargot est cree dans le jardin , on remet a zero la variable especeEscargot pour eviter des conflits.
      	 }    	 
    }   
    
    /**
     * Creer l'escargot dans le jardin
     */
    public void creerEscargot(){
    	//Cree l'escargot en fonction de son espece
    	if(getEspeceEscargot()==1){
    		Escargot escargot = new Escargot((int) (Math.random() * (1024-53)),(int)(Math.random() * 
    				(700-75)),"", 20, 10,20,getEspeceEscargot(), barreDeJeu.getEnvironnement());
    		barreDeJeu.getEnvironnement().getModele().addEscargot(escargot);
    	}
    	if(getEspeceEscargot()==2){
    		Escargot escargot = new Escargot((int) (Math.random() * (1024-53)),(int)(Math.random() * 
    				(700-75)),"", 20, 10,20,getEspeceEscargot(), barreDeJeu.getEnvironnement());
    		barreDeJeu.getEnvironnement().getModele().addEscargot(escargot);
    	}
    }
    /**
     * Initialise la fenetre qui permet de confirmerl'achat des escargots
     */
    public void confirmerActionAchatEscargot(){
    	//Configuration de la fenetre
    	this.setUndecorated(true);
    	this.setSize(150,100);
    	this.setLocation(700,300);
    	this.setTitle("Confirmer l'action ?");
    	this.toFront();
    
    	//Creation des boutons Oui et Non
    	boutonNon = new JButton(new ImageIcon("img/BoutonNon.png")); 
  	    boutonOui = new JButton(new ImageIcon("img/BoutonOUI.png"));
    	
  	    //Ajout de la possibilitee d'interagir avec les boutons
		boutonOui.addActionListener(this);
		boutonNon.addActionListener(this);
		escargotChoix1.addActionListener(this);
		escargotChoix2.addActionListener(this);
		
		//Placement des boutons et de l'image dans la fenetre
		boutonOui.setBounds(0,0,50,50);
		boutonNon.setBounds(100,0,50,50);
		imageBoutiqueAchatEscargot.setBounds(50,0,50,100);
		escargotChoix1.setBounds(0,50,50,50);
		escargotChoix2.setBounds(100,50,50,50);
		boutonOui.setToolTipText("Oui");
		boutonNon.setToolTipText("Non");
		
		//Configuration des boutons
		boutonOui.setBorderPainted(false);
		boutonOui.setOpaque(false);
		boutonOui.setContentAreaFilled(false);
		boutonNon.setBorderPainted(false);
		boutonNon.setOpaque(false);
		boutonNon.setContentAreaFilled(false);
		escargotChoix1.setBorderPainted(false);
		escargotChoix1.setOpaque(false);
		escargotChoix1.setContentAreaFilled(false);
		escargotChoix2.setBorderPainted(false);
		escargotChoix2.setOpaque(false);
		escargotChoix2.setContentAreaFilled(false);
		
		//Creation de la fentre et ajout des boutons et image
		confirmationAchatEscargot = new JPanel(new BorderLayout(0,0));
		confirmationAchatEscargot.add(boutonOui);
		confirmationAchatEscargot.add(boutonNon);
		confirmationAchatEscargot.add(escargotChoix1);
		confirmationAchatEscargot.add(escargotChoix2);
		confirmationAchatEscargot.add(imageBoutiqueAchatEscargot);
		
		add(confirmationAchatEscargot);
    }
    
    /**
     * Affiche la fentre pour confirmer l'action d'achat d'escargot.
     */
    public void afficherConfirmationAchatEscargot(){ 
    	this.setVisible(true);
    }
    
    /**
     * Fonction qui permet d'interagir avec les boutons
     */
    public void actionPerformed(ActionEvent arg) {
        if (arg.getSource()==boutonOui){
        	if(getEspeceEscargot()>0){
        		//On peut acheter un escargot lorsque l'on a choisit une espece
        		achatEscargot();
        		this.setVisible(false);
        		}
        	else{messageErreurChoixEscargot();
        	}
      	}
    	if (arg.getSource()==boutonNon){
    		this.setVisible(false);
    		setEspeceEscargot(0);
    		//Si on refuse d'acheter un escargot, on remet a zero la variable especeEscargot
      	}
    	if (arg.getSource()==escargotChoix1){
    		setEspeceEscargot(1);
    		//On met la variable 1 dans especeEscargot pour afficher la bonne espece dans le jardin
    	}
        if (arg.getSource()==escargotChoix2){
        	setEspeceEscargot(2);
        	//On met la variable 2 dans especeEscargot pour afficher la bonne espece dans le jardin
        }
    }
    
    //GET&SET
    
	public int getNombreEscargot() {
		return nombreEscargot;
	}

	public void setNombreEscargot( int nombreEscargot) {
		this.nombreEscargot = nombreEscargot;
	}

	public int getPrixAchatEscargot() {
		return prixAchatEscargot;
	}

	public void setPrixAchatEscargot(int prixAchatEscargot) {
		this.prixAchatEscargot = prixAchatEscargot;
	}

	public int getEspeceEscargot() {
		return especeEscargot;
	}

	public void setEspeceEscargot(int especeEscargot) {
		this.especeEscargot = especeEscargot;
	}  
	
}
